package com.bsg.upm.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.bsg.upm.entity.ServEntity;

/**
 * 服务接口
 * 
 * @author HCK
 *
 */
public interface ServDao extends CrudDao<ServEntity> {

	/**
	 * 获取指定条件下的服务名称
	 * 
	 * @param siteId
	 *            站点编码
	 * @param definitionServCode
	 *            服务定义代码
	 * @param owner
	 *            所属者
	 * @return 服务名称集合
	 */
	List<ServEntity> listName(@Param("siteId") String siteId, @Param("definitionServCode") String definitionServCode,
			@Param("owner") String owner);

	List<ServEntity> listWithoutAssociation();

	/**
	 * 获取服务基本信息（服务基本信息和包含的子服务的基本信息）
	 * 
	 * @param servId
	 *            服务编码
	 * @return 服务对象
	 */
	ServEntity getBase(String servId);

	/**
	 * 获取指定工单产生的服务信息
	 * 
	 * @param orderId
	 *            工单编码
	 * @return 服务对象
	 */
	ServEntity getByOrderId(String orderId);

	/**
	 * 保存服务所关联的子服务
	 * 
	 * @param serv
	 *            服务对象
	 * @return 保存条数
	 */
	int saveRelativeSubServ(ServEntity serv);

	/**
	 * 保存服务所关联的子服务所关联的单元
	 * 
	 * @param serv
	 *            服务对象
	 * @return 保存条数
	 */
	int saveRelativeSubServUnit(ServEntity serv);

	/**
	 * 获取指定站点下服务个数
	 * 
	 * @param siteId
	 *            站点编码
	 * @return 服务个数
	 */
	int countBySiteId(String siteId);

	/**
	 * 获取指定工单的服务个数
	 * 
	 * @param orderId
	 *            工单编码
	 * @return 服务个数
	 */
	int countByOrderId(String orderId);

}
